package com.h6.crm.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import org.springframework.format.annotation.DateTimeFormat;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

@Data
@EqualsAndHashCode(callSuper = true)
@TableName("SO_Project")
public class Project extends BaseEntity implements Serializable {

    @TableField("ClientId")
    Long clientId; // 客户ID

    @TableField("Name")
    String name; // 项目名

    @TableField("Contact")
    String contact; // 联系人

    @TableField("Phone")
    String phone; // 联系电话

    @TableField("Source")
    String source; // 来源

    @TableField("Province")
    String province; // 省份

    @TableField("City")
    String city; // 城市

    @TableField("SalesmanId")
    Long salesmanId; // 业务员ID

    @Schema(description = "项目总金额")
    @TableField("TotalAmount")
    BigDecimal totalAmount; // 项目总金额

    @Schema(description = "项目最新报价金额，实时更新")
    @TableField("QuoteAmount")
    BigDecimal quoteAmount; // 最新报价金额，实时更新

    @TableField("Address")
    String address; // 地址

    @TableField("OperationDate")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Asia/Shanghai")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    Date operationDate; // 报备日期

    @Schema(description = "公司商标ID")
    @TableField("EntityId")
    Long entityId; // 公司商标

    @TableField("ProjectStatus")
    String projectStatus; // 项目状态：进行中，终止，签约

    @TableField("Remark")
    String remark; // 备注

    @TableField(exist = false)
    String clientName; // 客户

    @TableField(exist = false)
    String salesman; // 业务员

    @TableField(exist = false)
    String entity; // 公司商标

}
